#!/bin/bash
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

#
# This script makes sure that 127.0.0.x is routable. On Darwin, there
# is a bug that it isn't routable and this causes errors.
#

action=${1:-up}

if [  "$action" = "up" ]
then
  # Check if loopback is setup
  ping -c 1 -W 10 127.0.0.2 > /dev/null 2>&1
  if [ $? -eq 0 ]
  then
      exit
  fi
fi

# If we're not on OS X, then error
case $OSTYPE in
    darwin*)
        ;;
    *)
        echo "Can't setup interfaces on non-Mac. Error!"
        exit 1
        ;;
esac

# Setup loopback
for j in 0 1 2
do
  for ((i=2;i<256;i++))
  do
      if [ "$action" = "up" ]
      then
        sudo ifconfig lo0 alias 127.0.$j.$i up
      else
        sudo ifconfig lo0 127.0.$j.$i delete
     fi
  done
done
